#!/bin/bash
#(1)下载minikube阿里最新版本支持查看：https://github.com/AliyunContainerService/minikube/releases
if [ ! -f "/usr/local/bin/minikube" ]; then
    echo "正在下载：minikube"
    curl -Lo /usr/local/bin/minikube http://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/releases/v1.2.0/minikube-linux-amd64
    sudo chmod +x /usr/local/bin/minikube 
fi

# （2）关闭交换分区：running with swap on is not supported. Please disable swap
swapoff -a
sudo sed -i '/swap/ s/^\(.*\)$/#\1/g' /etc/fstab
free -m

#（2）启动minikube(#centos机器最好内存在2g以上，并且cpu内核数至少为2)
# 参数：
# --vm-driver 指定虚拟化方法(使用linux本机作为运行环境所以vm-driver为none或不指定时，通过minikube ssh进入虚拟机)
# --vm-driver=none 表示用容器
# --vm-driver=virtualbox 表示用虚拟机
# --docker-env http_proxy 传递代理地址

#（3）用本机ip地址，当成代理ip
IP=`/sbin/ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v 172.17.0.1|grep -v 10.0.2.15|grep -v inet6|awk '{print $2}'|tr -d "addr:"`
PORT=8118
# 先删除
minikube delete
# 再启动
minikube start --vm-driver=none  --docker-env http_proxy=http://$IP:$PORT --docker-env https_proxy=https://$IP:$PORT
# 启动控制面板
sudo nohup minikube dashboard --url  >/dev/null 2>&1&
#设置API server接收所有主机的请求：（默认外网端口Starting to serve on [::]:8001）
#nohub kubectl proxy  --port=[需要暴露的端口号] --address='[服务器IP]' --accept-hosts='^[外部访问服务器的IP]$'  >/dev/null 2>&1& 
sudo nohup kubectl proxy --address='0.0.0.0'  --accept-hosts='^*$'  >/dev/null 2>&1&
echo "控制台访问：http://$IP:8001/api/v1/namespaces/kube-system/services/http:kubernetes-dashboard:/proxy/"

#nohup kubectl proxy  --port=8088 --address=$IP --accept-hosts='^$IP$'  >/dev/null 2>&1& 
# 查看集群信息
sudo kubectl cluster-info
kubectl get pod --all-namespaces
echo "再次查看：kubectl get pod --all-namespaces"
#=========================测试nginx=================================
# kubectl run --image=nginx nginx-app --port=80
# kubectl expose deployment nginx-app --port=80 --name=nginx-http --type=NodePort
# [root@mini1 ~]# kubectl get services
# NAME         TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)        AGE
# kubernetes   ClusterIP   10.96.0.1      <none>        443/TCP        44m
# nginx-http   NodePort    10.109.1.137   <none>        80:31396/TCP   73s
# 访问：http://192.168.56.101:31396/#
# Welcome to nginx!
# If you see this page, the nginx web server is successfully installed and working. Further configuration is required.

# For online documentation and support please refer to nginx.org.
# Commercial support is available at nginx.com.

# Thank you for using nginx.


#================== 常用命令 ============================
# minikube version，查看minikube的版本
# minikube start，启动minikube
# minikube ssh，ssh到虚拟机中
# minikube logs，显示minikube的log
# minikube dashboard，启动minikube dashboard
# minikube ip，显示虚拟机地址
# minikube stop，停止虚拟机
# minikube delete，删除虚拟机
#================== minikube 镜像 ====================
# 下载minikube iso，存储位置为~/.minikube/cache/iso/minikube-v0.32.0.iso
# 下载kubeadm，存储位置为~/.minikube/cache/v1.12.4/kubeadm
# 下载kubelet，存储位置为~/.minikube/cache/v1.12.4/kubelet
# 创建并启动虚拟机
# 将需要的文件拷入虚拟机
# 使用kubeadm安装kubernetes
# kubeadm会下载镜像，并启动镜像

# ╭─root@mini1 ~/.minikube
# ╰─# ll
# 总用量 44K
# drwxr-xr-x 2 root root    6 3月  19 08:40 addons
# -rw-r--r-- 1 root root 1.3K 3月  19 10:35 apiserver.crt
# -rw------- 1 root root 1.7K 3月  19 10:35 apiserver.key
# drwxr-xr-x 5 root root   46 3月  19 08:51 cache
# -rw-r--r-- 1 root root 1.1K 3月  19 08:54 ca.crt
# -rw------- 1 root root 1.7K 3月  19 08:54 ca.key
# drwxr-xr-x 2 root root   69 3月  19 08:46 certs
# -rw-r--r-- 1 root root 1.1K 3月  19 10:35 client.crt
# -rw------- 1 root root 1.7K 3月  19 10:35 client.key
# drwxr-xr-x 2 root root    6 3月  19 08:40 config
# drwxr-xr-x 2 root root    6 3月  19 08:40 files
# -rw-r--r-- 1 root root   29 3月  19 08:41 last_update_check
# drwxr-xr-x 2 root root    6 3月  19 08:40 logs
# drwxr-xr-x 2 root root    6 3月  19 10:39 machines
# drwx------ 3 root root   22 3月  19 08:46 profiles
# -rw-r--r-- 1 root root 1.1K 3月  19 08:54 proxy-client-ca.crt
# -rw------- 1 root root 1.7K 3月  19 08:54 proxy-client-ca.key
# -rw-r--r-- 1 root root 1.1K 3月  19 10:35 proxy-client.crt
# -rw------- 1 root root 1.7K 3月  19 10:35 proxy-client.key
# ====================== 配置 =========================
# ╭─root@mini1 /etc/kubernetes
# ╰─# tree
# .
# ├── addons
# │   ├── dashboard-dp.yaml
# │   ├── dashboard-svc.yaml
# │   ├── storageclass.yaml
# │   └── storage-provisioner.yaml
# ├── admin.conf
# ├── controller-manager.conf
# ├── kubelet.conf
# ├── manifests
# │   ├── addon-manager.yaml.tmpl
# │   ├── etcd.yaml
# │   ├── kube-apiserver.yaml
# │   ├── kube-controller-manager.yaml
# │   └── kube-scheduler.yaml
# └── scheduler.conf








